﻿//////////////////////////////////////////////////////////////////////////////
//
//  Copyright © 1998-2024 Glodon Company Limited.  All rights reserved.
//
//  Use of this software is subject to the terms of the Glodon license
//  agreement provided at the time of installation or download, or which
//  otherwise accompanies this software in either electronic or hard copy form.  
//
//////////////////////////////////////////////////////////////////////////////

#pragma once
#include "GmModelFamily.h"
#include "OwnerPtr.h"

namespace gcmp
{
    class IGraphicsBRepBody;
    class IGraphicsNodeReference;
    class IElement;
}

namespace gfam
{

    class GCMP_MODEL_FAMILY_EXPORT FamilyFormUtils
    {
    public:
        /// \brief 隐藏接缝边
        ///
        /// \param pBody 边界体指针
        static void HideSeamEdge(gcmp::IGraphicsBRepBody* pBody);

        /// \brief 获取原始节点引用
        /// 这里返回的【原始节点】用来驱动形体变化，目前函数只在几个体上有作用，比如获取旋转体、融合体的定位线对象
        ///
        /// \param pElement Element指针
        /// \param pNodeReference 节点引用
        /// \return 原始节点的引用
        static gcmp::OwnerPtr<gcmp::IGraphicsNodeReference> GetOriginNodeReference(const gcmp::IElement* pElement, const gcmp::IGraphicsNodeReference& pNodeReference);

    };
}

